﻿Namespace Global.System

#If (Not WINDOWS_PHONE) And (Not NETFX_CORE) And (Not SILVERLIGHT) Then
    <Serializable>
    Public Class MutableTuple(Of T1, T2)
#Else
    Public Class MutableTuple(Of T1, T2)
#End If

        Public Property Item1() As T1
        Public Property Item2() As T2

        Public Sub New()
            Me.Item1 = Nothing
            Me.Item2 = Nothing
        End Sub

        Public Sub New(ByVal i1 As T1, ByVal i2 As T2)
            Me.Item1 = i1
            Me.Item2 = i2
        End Sub

    End Class

#If (Not WINDOWS_PHONE) And (Not NETFX_CORE) And (Not SILVERLIGHT) Then
    <Serializable>
    Public Class MutableTuple(Of T1, T2, T3)
#Else
    Public Class MutableTuple(Of T1, T2, T3)
#End If

        Public Property Item1() As T1
        Public Property Item2() As T2
        Public Property Item3() As T3

        Public Sub New()
            Me.Item1 = Nothing
            Me.Item2 = Nothing
            Me.Item3 = Nothing
        End Sub

        Public Sub New(ByVal i1 As T1, ByVal i2 As T2, ByVal i3 As T3)
            Me.Item1 = i1
            Me.Item2 = i2
            Me.Item3 = i3
        End Sub

    End Class

#If (Not WINDOWS_PHONE) And (Not NETFX_CORE) And (Not SILVERLIGHT) Then
    <Serializable>
    Public Class MutableTuple(Of T1, T2, T3, T4)
#Else
    Public Class MutableTuple(Of T1, T2, T3, T4)
#End If

        Public Property Item1() As T1
        Public Property Item2() As T2
        Public Property Item3() As T3
        Public Property Item4() As T4

        Public Sub New()
            Me.Item1 = Nothing
            Me.Item2 = Nothing
            Me.Item3 = Nothing
            Me.Item4 = Nothing
        End Sub

        Public Sub New(ByVal i1 As T1, ByVal i2 As T2, ByVal i3 As T3, ByVal i4 As T4)
            Me.Item1 = i1
            Me.Item2 = i2
            Me.Item3 = i3
            Me.Item4 = i4
        End Sub

    End Class

End Namespace